package com.chinairi.mall.service;

import com.chinairi.mall.controller.viewobject.ReplaceInfoParam;
import com.chinairi.mall.controller.viewobject.SuggestionPlanParam;
import com.chinairi.mall.model.ReqModelDetail;
import com.baomidou.mybatisplus.extension.service.IService;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 模型明细业务逻辑层接口
 * </p>
 * @author 李昌赐
 * @since 2020-08-19
 */
public interface IReqModelDetailService extends IService<ReqModelDetail> {

    /**
     * 需求模型明细分页查询
     * @return 需求模型明细信息集合
     */
    List<Map<String,Object>> pageReqModelDetail(ReqModelDetail reqModelDetail);

    /**
     * 保存需求模型明细
     * @param reqModelDetail 需求模型明细信息
     * @return 返回保存成功与否的消息
     */
    Map<String,Object> saveReqModelDetail(ReqModelDetail reqModelDetail);

    /**
     * 查询需求明细信息
     * @param modelDetailId 需求明细id
     * @return 需求明细信息
     */
    Map<String,Object>  getReqModelDetail(String modelDetailId);

    /**
     * 修改需求模型明细
     * @param reqModelDetail 需求模型明细信息
     * @return 返回是否修改成功的消息
     */
    Map<String,Object> updateReqModelDetail(ReqModelDetail reqModelDetail);

    /**
     * 删除需求模型明细
     * @param modelDetailId 明细id
     * @return 返回是否删除成功的标识和消息
     */
    Map<String,Object> deleteReqModelDetail(String modelDetailId);

    /**
     * 井号下拉
     * @return 井号集合
     */
    List<Map<String,Object>> listWellNumber();

    /**
     * 井别下拉
     * @return 井别集合
     */
    List<Map<String,Object>> listWellClassification();

    /**
     * 井型下拉
     * @return 井型集合
     */
    List<Map<String,Object>> listWellType();

    /**
     * 工区下拉
     * @return 工区集合
     */
    List<Map<String,Object>> listWorkArea();

    /**
     * 获取物资代用情况信息
     * @param replaceInfoParam
     * @return
     */
    List<Map<String, Object>> getReplaceInfo(ReplaceInfoParam replaceInfoParam);

    /**
     * 获取最大最小消耗量
     * @param conNum
     * @return
     */
    List<Map<String, Object>> getConNum(String conNum);

    /**
     * 建议计划查询
     * @param suggestionPlanParam
     * @return
     */
    List<Map<String, Object>> getSuggestionPlanInfo(SuggestionPlanParam suggestionPlanParam);
}
